var runtime.trace
178 uses
runtime (current package)
mstats.go#L462: lock(&trace.lock)
mstats.go#L500: unlock(&trace.lock)
trace.go#L30: var trace struct {
trace.go#L174: firstGen := traceNextGen(trace.lastNonZeroGen)
trace.go#L177: trace.seqGC = 1
trace.go#L180: trace.headerWritten = false
trace.go#L181: trace.readerGen.Store(firstGen)
trace.go#L182: trace.flushedGen.Store(0)
trace.go#L232: trace.minPageHeapAddr = uint64(mheap_.pages.inUse.ranges[0].base.addr())
trace.go#L253: trace.enabled = true
trace.go#L256: trace.debugMalloc = debug.malloc
trace.go#L257: trace.enabledWithAllocFree = true
trace.go#L260: trace.gen.Store(firstGen)
trace.go#L275: for trace.exitingSyscall.Load() != 0 {
trace.go#L292: if trace.enabledWithAllocFree {
trace.go#L336: gen := trace.gen.Load()
trace.go#L424: trace.lastNonZeroGen = gen
trace.go#L431: lock(&trace.lock)
trace.go#L432: trace.shutdown.Store(true)
trace.go#L433: trace.gen.Store(0)
trace.go#L434: unlock(&trace.lock)
trace.go#L438: trace.enabled = false
trace.go#L441: trace.gen.Store(traceNextGen(gen))
trace.go#L526: lock(&trace.lock)
trace.go#L533: unlock(&trace.lock)
trace.go#L589: trace.stackTab[gen%2].dump(gen)
trace.go#L590: trace.typeTab[gen%2].dump(gen)
trace.go#L591: trace.stringTab[gen%2].reset(gen)
trace.go#L595: lock(&trace.lock)
trace.go#L596: trace.flushedGen.Store(gen)
trace.go#L597: unlock(&trace.lock)
trace.go#L626: if trace.enabledWithAllocFree {
trace.go#L627: trace.enabledWithAllocFree = false
trace.go#L628: debug.malloc = trace.debugMalloc
trace.go#L650: semacquire(&trace.doneSema[gen%2])
trace.go#L652: raceacquire(unsafe.Pointer(&trace.doneSema[gen%2]))
trace.go#L658: lock(&trace.lock)
trace.go#L659: if !trace.full[gen%2].empty() {
trace.go#L663: if !trace.full[1-(gen%2)].empty() {
trace.go#L666: if trace.reading != nil || trace.reader.Load() != nil {
trace.go#L670: for trace.empty != nil {
trace.go#L671: buf := trace.empty
trace.go#L672: trace.empty = buf.link
trace.go#L676: trace.headerWritten = false
trace.go#L677: trace.shutdown.Store(false)
trace.go#L679: unlock(&trace.lock)
trace.go#L735: trace.markWorkerLabels[gen%2][i] = traceArg(trace.stringTab[gen%2].put(gen, label))
trace.go#L738: trace.goBlockReasons[gen%2][i] = traceArg(trace.stringTab[gen%2].put(gen, str))
trace.go#L741: trace.goStopReasons[gen%2][i] = traceArg(trace.stringTab[gen%2].put(gen, str))
trace.go#L759: if !trace.reader.CompareAndSwapNoWB(nil, gp) {
trace.go#L803: lock(&trace.lock)
trace.go#L805: if trace.reader.Load() != nil {
trace.go#L809: unlock(&trace.lock)
trace.go#L814: if buf := trace.reading; buf != nil {
trace.go#L815: buf.link = trace.empty
trace.go#L816: trace.empty = buf
trace.go#L817: trace.reading = nil
trace.go#L820: if !trace.headerWritten {
trace.go#L821: trace.headerWritten = true
trace.go#L822: unlock(&trace.lock)
trace.go#L828: if trace.readerGen.Load() == 0 {
trace.go#L829: trace.readerGen.Store(1)
trace.go#L833: assertLockHeld(&trace.lock)
trace.go#L834: gen = trace.readerGen.Load()
trace.go#L838: if !trace.full[gen%2].empty() {
trace.go#L846: if trace.flushedGen.Load() == gen {
trace.go#L847: if trace.shutdown.Load() {
trace.go#L848: unlock(&trace.lock)
trace.go#L858: racerelease(unsafe.Pointer(&trace.doneSema[gen%2]))
trace.go#L860: semrelease(&trace.doneSema[gen%2])
trace.go#L869: trace.readerGen.Store(trace.gen.Load())
trace.go#L870: unlock(&trace.lock)
trace.go#L878: racerelease(unsafe.Pointer(&trace.doneSema[gen%2]))
trace.go#L880: semrelease(&trace.doneSema[gen%2])
trace.go#L883: lock(&trace.lock)
trace.go#L895: trace.workAvailable.Store(false)
trace.go#L896: unlock(&trace.lock)
trace.go#L900: tbuf := trace.full[gen%2].pop()
trace.go#L901: trace.reading = tbuf
trace.go#L902: unlock(&trace.lock)
trace.go#L914: if gp == nil || !trace.reader.CompareAndSwapNoWB(gp, nil) {
trace.go#L938: if trace.flushedGen.Load() == trace.readerGen.Load() || trace.workAvailable.Load() || trace.shutdown.Load() {
trace.go#L939: return trace.reader.Load()
traceallocfree.go#L38: w.varint(uint64(trace.minPageHeapAddr))
traceallocfree.go#L107: return traceArg(uint64(s.base())-trace.minPageHeapAddr) / pageSize
traceallocfree.go#L131: return traceArg(uint64(addr)-trace.minPageHeapAddr) / minHeapAlign
traceallocfree.go#L153: return traceArg(uint64(base)-trace.minPageHeapAddr) / fixedStack
tracebuf.go#L144: lock(&trace.lock)
tracebuf.go#L148: unlock(&trace.lock)
tracebuf.go#L157: lock(&trace.lock)
tracebuf.go#L161: if trace.empty != nil {
tracebuf.go#L162: w.traceBuf = trace.empty
tracebuf.go#L163: trace.empty = w.traceBuf.link
tracebuf.go#L164: unlock(&trace.lock)
tracebuf.go#L166: unlock(&trace.lock)
tracebuf.go#L347: assertLockHeld(&trace.lock)
tracebuf.go#L358: trace.full[gen%2].push(buf)
tracebuf.go#L362: if !trace.workAvailable.Load() {
tracebuf.go#L363: trace.workAvailable.Store(true)
tracecpu.go#L18: trace.cpuLogRead[0] = newProfBuf(3, profBufWordCount, profBufTagCount)
tracecpu.go#L19: trace.cpuLogRead[1] = newProfBuf(3, profBufWordCount, profBufTagCount)
tracecpu.go#L27: trace.cpuLogWrite[0].Store(trace.cpuLogRead[0])
tracecpu.go#L28: trace.cpuLogWrite[1].Store(trace.cpuLogRead[1])
tracecpu.go#L40: trace.cpuSleep = newWakeableSleep()
tracecpu.go#L54: trace.cpuSleep.sleep(100_000_000)
tracecpu.go#L69: trace.cpuLogDone = done
tracecpu.go#L87: trace.cpuLogWrite[0].Store(nil)
tracecpu.go#L88: trace.cpuLogWrite[1].Store(nil)
tracecpu.go#L89: trace.cpuLogRead[0].close()
tracecpu.go#L90: trace.cpuLogRead[1].close()
tracecpu.go#L91: trace.cpuSleep.wake()
tracecpu.go#L94: <-trace.cpuLogDone
tracecpu.go#L97: trace.cpuLogDone = nil
tracecpu.go#L98: trace.cpuLogRead[0] = nil
tracecpu.go#L99: trace.cpuLogRead[1] = nil
tracecpu.go#L100: trace.cpuSleep.close()
tracecpu.go#L119: data, tags, eof := trace.cpuLogRead[gen%2].read(profBufNonBlocking)
tracecpu.go#L168: w := unsafeTraceWriter(gen, trace.cpuBuf[gen%2])
tracecpu.go#L179: stackID := trace.stackTab[gen%2].put(pcBuf[:nstk])
tracecpu.go#L189: trace.cpuBuf[gen%2] = w.traceBuf
tracecpu.go#L198: if buf := trace.cpuBuf[gen%2]; buf != nil {
tracecpu.go#L200: lock(&trace.lock)
tracecpu.go#L202: unlock(&trace.lock)
tracecpu.go#L203: trace.cpuBuf[gen%2] = nil
tracecpu.go#L233: gen := trace.gen.Load()
tracecpu.go#L262: for !trace.signalLock.CompareAndSwap(0, 1) {
tracecpu.go#L267: if log := trace.cpuLogWrite[gen%2].Load(); log != nil {
tracecpu.go#L274: trace.signalLock.Store(0)
traceevent.go#L150: return traceArg(trace.stackTab[tl.gen%2].put([]uintptr{
traceevent.go#L160: return traceArg(trace.stringTab[tl.gen%2].put(tl.gen, s))
traceevent.go#L167: return traceArg(trace.stringTab[tl.gen%2].emit(tl.gen, s))
traceevent.go#L172: return traceArg(trace.typeTab[tl.gen%2].put(typ))
traceruntime.go#L58: lockInit(&trace.stringTab[0].lock, lockRankTraceStrings)
traceruntime.go#L59: lockInit(&trace.stringTab[0].tab.mem.lock, lockRankTraceStrings)
traceruntime.go#L60: lockInit(&trace.stringTab[1].lock, lockRankTraceStrings)
traceruntime.go#L61: lockInit(&trace.stringTab[1].tab.mem.lock, lockRankTraceStrings)
traceruntime.go#L62: lockInit(&trace.stackTab[0].tab.mem.lock, lockRankTraceStackTab)
traceruntime.go#L63: lockInit(&trace.stackTab[1].tab.mem.lock, lockRankTraceStackTab)
traceruntime.go#L64: lockInit(&trace.typeTab[0].tab.mem.lock, lockRankTraceTypeTab)
traceruntime.go#L65: lockInit(&trace.typeTab[1].tab.mem.lock, lockRankTraceTypeTab)
traceruntime.go#L66: lockInit(&trace.lock, lockRankTrace)
traceruntime.go#L76: lockWithRankMayAcquire(&trace.lock, getLockRank(&trace.lock))
traceruntime.go#L150: return trace.enabled
traceruntime.go#L158: return trace.enabledWithAllocFree
traceruntime.go#L163: return trace.shutdown.Load()
traceruntime.go#L214: return traceLocker{mp, trace.gen.Load()}
traceruntime.go#L236: gen := trace.gen.Load()
traceruntime.go#L276: trace.exitingSyscall.Add(1)
traceruntime.go#L281: trace.exitingSyscall.Add(-1)
traceruntime.go#L312: tl.eventWriter(traceGoRunning, traceProcRunning).event(traceEvGCActive, traceArg(trace.seqGC))
traceruntime.go#L315: trace.seqGC++
traceruntime.go#L323: tl.eventWriter(traceGoRunning, traceProcRunning).event(traceEvGCBegin, traceArg(trace.seqGC), tl.stack(3))
traceruntime.go#L326: trace.seqGC++
traceruntime.go#L334: tl.eventWriter(traceGoRunning, traceProcRunning).event(traceEvGCEnd, traceArg(trace.seqGC))
traceruntime.go#L337: trace.seqGC++
traceruntime.go#L436: w.event(traceEvGoLabel, trace.markWorkerLabels[tl.gen%2][pp.ptr().gcMarkWorkerMode])
traceruntime.go#L459: tl.eventWriter(traceGoRunning, traceProcRunning).event(traceEvGoStop, traceArg(trace.goStopReasons[tl.gen%2][reason]), tl.stack(1))
traceruntime.go#L467: tl.eventWriter(traceGoRunning, traceProcRunning).event(traceEvGoBlock, traceArg(trace.goBlockReasons[tl.gen%2][reason]), tl.stack(skip))
traceruntime.go#L696: lock(&trace.lock)
traceruntime.go#L707: unlock(&trace.lock)
tracestack.go#L126: id := trace.stackTab[gen%2].put(pcBuf[:nstk])
tracestack.go#L235: frame.funcID = trace.stringTab[gen%2].put(gen, fn)
tracestack.go#L241: frame.fileID = trace.stringTab[gen%2].put(gen, file)
tracestring.go#L88: lock(&trace.lock)
tracestring.go#L90: unlock(&trace.lock)
tracetime.go#L91: lock(&trace.lock)
tracetime.go#L93: unlock(&trace.lock)